My-clean-code guide
First: what your style already says about you
From your heap, graph, and Dijkstra code, your natural tendencies are:
-
You think in data structures, not just steps
-
You like expressive types & classes
-
You try to model the domain, not just “get it working”
-
You explore language features (private fields, valueOf, generics)
That’s good. The downside is:
you abstract too early, before the shape of the problem settles.
So the goal is not “abstract less”, but:
abstract later and with sharper boundaries
Core principle that will level you up fast
🔑 Write it ugly once. Then abstract only what hurts.
Most people hear this advice but don’t actually follow it. Here’s what it means in practice: